﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface IOrderMgtService
    {
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string ClosePurchaseOrder(List<string> poIDS, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string ConvertSalesOrder2ShippingOrder(List<string> orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        string DeletePurchaseOrder(List<string> poIDs, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SalesOrderInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteSalesOrderInfo(List<string> orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllInfoPurchaseOrder(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PurchaseOrderInfo)), OperationContract]
        PurchaseOrderInfo GetPurchaseOrderInfoByID(string poID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PurchaseOrderQueryEntity)), OperationContract]
        DataSet GetPurchaseOrderInfoByQueryEntity(PurchaseOrderQueryEntity purchaseOrderQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SalesOrderQueryEntity)), OperationContract]
        DataSet GetSalesOrderByQueryEntity(SalesOrderQueryEntity salesOrderQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SalesOrderInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        SalesOrderInfo GetSalesOrderInfoByID(string salesOrderID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(SalesOrderInfo)), FaultContract(typeof(FaultDetail))]
        SalesOrderInfo ImportSoByDataSet(DataSet ds, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PurchaseOrderInfo))]
        string InserOnLinePurchaseOrder(PurchaseOrderInfo purchaseOrderInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PurchaseOrderInfo))]
        string InserPurchaseOrder(PurchaseOrderInfo purchaseOrderInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(SalesOrderInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string InsertSalesOrderInfo(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string SalesOrderCancel(string orderID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string TJConvertSalesOrder2ShippingOrder(List<string> orderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(SalesOrderInfo))]
        string TJInsertSalesOrderInfo(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(SalesOrderInfo)), OperationContract]
        string TJUpdateOnLineSO(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string TTConvertSalesOrder2ShippingOrder(List<string> orderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SalesOrderInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string TTInsertSalesOrderInfo(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(SalesOrderInfo))]
        string TTUpdateOnLineSO(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PurchaseOrderInfo)), OperationContract]
        string UpdateOnLinePurchaseOrder(PurchaseOrderInfo purchaseOrderInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(SalesOrderInfo)), OperationContract]
        string UpdateOnLineSO(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PurchaseOrderInfo))]
        string UpdatePurchaseOrder(PurchaseOrderInfo purchaseOrderInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(SalesOrderInfo)), OperationContract]
        string UpdateSalesOrderInfo(SalesOrderInfo salesOrderInfo, PubParasInfo pubParasInfo);
    }
}

